Component({
  /**
   * 组件的属性列表
   */
  properties: {
    endTime: {
      type: String,         //定义类型
      observer: function (newVal) { //监听
        this.setData({ 
          actEndTimeList: newVal 
        });
        // 执行定时器
        clearInterval(this.data.timer)
      }
    },
    styleColor: {
      type: String,
      value: 'normal'
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    countDownList: [],
    actEndTimeList: [],
    timer: null,
  },

  lifetimes: {
    attached: function() {
      this.countDownEvent();
    },
  },

  /**
   * 组件的方法列表
   */
  methods: {

    // 启动定时器
    countDownEvent() {
      let timer = setInterval(() => {
        this.countDown()
      }, 1000);
      this.setData({ timer: timer })
    },


    // 开始处理时间
    countDown() {
      // 获取当前时间，同时得到活动结束时间数组
      let newTime = new Date().getTime();
      let endTimeList = this.data.actEndTimeList;
      let countDownArr = [];

      // 对结束时间进行处理渲染到页面
      let endTime = new Date(endTimeList.replace(/-/g, '/')).getTime()
      // console.log("结束时间："+endTime)
      let obj = null;
      // 如果活动未结束，对时间进行处理
      if (endTime - newTime > 0) {
        let time = (endTime - newTime) / 1000;
        // 获取天、时、分、秒
        let day = parseInt(time / (60 * 60 * 24));
        let hou = parseInt(time % (60 * 60 * 24) / 3600);
        // let hou = parseInt(time % (60 * 60 * 24) / 3600) + day * 24;
        let min = parseInt(time % (60 * 60 * 24) % 3600 / 60);
        let sec = parseInt(time % (60 * 60 * 24) % 3600 % 60);
        obj = {
          day: this.timeFormat(day),
          hou: this.timeFormat(hou),
          min: this.timeFormat(min),
          sec: this.timeFormat(sec)
        }
      } else {//活动已结束，全部设置为'00'
        obj = {
          day: '00',
          hou: '00',
          min: '00',
          sec: '00'
        }
        //  倒计时完毕，清除定时器
        this.triggerEvent('timeEnd', true);
        clearInterval(this.data.timer)
      }
      countDownArr.push(obj);
      // 渲染
      this.setData({ countDownList: countDownArr })
    },
    timeFormat(param) {//小于10的格式化函数
      return param < 10 ? '0' + param : param;
    },

  }
})
